package com.siwei.apply.service;

import com.siwei.apply.domain.res.JsgcghxkRes;
import com.siwei.apply.domain.res.JsgcghxkSinglRes;
import com.siwei.apply.domain.vo.JsgcghxkUpdateVo;
import com.siwei.apply.domain.vo.JsgcghxkVo;

/**
 * 建设工程规划许可 服务接口
 */
public interface JsgcghxkService {
    /**
     * 根据项目projectId查询是否存在
     */
    Boolean isExit(String projectId);

    /**
     * 添加建设工程规划许可信息
     *
     * @param jsgcghxkVo 建设工程规划许可视图对象
     * @return 建设工程规划许可ID
     */
    String add(JsgcghxkVo jsgcghxkVo);

    /**
     * 获取建设工程规划许可信息（按项目ID）
     *
     * @param projectId 项目ID
     * @return 建设工程规划许可结果对象（列表）
     */
    JsgcghxkRes get(String projectId);

    /**
     * 根据主键id获取建设工程规划许可，返回单条结构，含项目名称与代码
     */
    JsgcghxkSinglRes getById(String id);

    /**
     * 更新建设工程规划许可信息
     *
     * @param jsgcghxkUpdateVo 建设工程规划许可更新视图对象
     */
    void update(JsgcghxkUpdateVo jsgcghxkUpdateVo);

    /**
     * 更新建设工程规划许可的上链状态
     * @param id 主键ID
     * @param hasOnchain 是否上链
     */
    void updateHasOnchain(String id, Boolean hasOnchain);
}
